A nonvolatile memory cell has two gates separated by an insulator layer. The floating gate electrode consists of polysilicon and is vertically separated from a control gate by the insulator layer. The control gate functions to provide external current control to the nonvolatile memory. Examples of nonvolatile memory as used herein include, but are not limited to, flash memory, EEPROM, CAM, and CD-ROM. Whenever the term flash memory is used herein, it is understood not to limit the invention to strictly flash memories, but to include all of the aforementioned nonvolatile memories.
A flash memory stores data in the form of charge on a floating gate that is insulated by two insulator layers. To store data in a floating gate, the memory cell is either programmed or erased. Conventionally, a logical “0” is stored by a programmed cell and a logical “1” is stored by an erased memory cell. Over time, the logical values in a memory array can be inadvertently changed due to charge leakage or disturbs resulting from accesses to adjacent rows.
Programming in a nonvolatile memory is performed by storing electrons on the floating gate to obtain a logical state of “0”. In a “0” state the bit draws current of approximately greater than 10 microAmps when the read voltage is applied to the memory cell. Erasing of data is performed by removing electrons from the floating gate to generate a logical state of “1”. In a “1” state, the bit draws a small current of less than 1 microAmp when the read voltage is applied to the memory cell.
In a flash memory data, a byte or word can be read in a mere 20 to 100 ns period. On the other hand, programming a byte or word requires a few microseconds, while erasing can consume up to several seconds of time.